package com.burstly.jackson.map.deser.std;

import com.burstly.jackson.JsonParser;
import com.burstly.jackson.JsonProcessingException;
import com.burstly.jackson.JsonToken;
import com.burstly.jackson.map.DeserializationContext;
import com.burstly.jackson.map.JsonDeserializer;
import com.burstly.jackson.map.JsonMappingException;
import com.burstly.jackson.map.deser.BeanDeserializer;
import com.burstly.jackson.map.deser.SettableAnyProperty;
import com.burstly.jackson.map.deser.SettableBeanProperty;
import com.burstly.jackson.map.deser.ValueInstantiator;
import com.burstly.jackson.map.deser.impl.BeanPropertyMap;
import com.burstly.jackson.type.JavaType;
import java.io.IOException;
import java.util.HashSet;

public class ThrowableDeserializer extends BeanDeserializer
{
  protected static final String PROP_NAME_MESSAGE = "message";

  public ThrowableDeserializer(BeanDeserializer paramBeanDeserializer)
  {
    super(paramBeanDeserializer);
  }

  protected ThrowableDeserializer(BeanDeserializer paramBeanDeserializer, boolean paramBoolean)
  {
    super(paramBeanDeserializer, paramBoolean);
  }

  public Object deserializeFromObject(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext)
    throws IOException, JsonProcessingException
  {
    Object localObject;
    if (this._propertyBasedCreator != null)
      localObject = _deserializeUsingPropertyBased(paramJsonParser, paramDeserializationContext);
    label486: 
    while (true)
    {
      return localObject;
      if (this._delegateDeserializer != null)
        return this._valueInstantiator.createUsingDelegate(this._delegateDeserializer.deserialize(paramJsonParser, paramDeserializationContext));
      if (this._beanType.isAbstract())
        throw JsonMappingException.from(paramJsonParser, "Can not instantiate abstract type " + this._beanType + " (need to add/enable type information?)");
      boolean bool1 = this._valueInstantiator.canCreateFromString();
      boolean bool2 = this._valueInstantiator.canCreateUsingDefault();
      if ((!bool1) && (!bool2))
        throw new JsonMappingException("Can not deserialize Throwable of type " + this._beanType + " without having a default contructor, a single-String-arg constructor; or explicit @JsonCreator");
      localObject = null;
      Object[] arrayOfObject = (Object[])null;
      int i = 0;
      if (paramJsonParser.getCurrentToken() == JsonToken.END_OBJECT)
      {
        if (localObject == null)
          if (!bool1);
      }
      else
        for (localObject = this._valueInstantiator.createFromString(null); ; localObject = this._valueInstantiator.createUsingDefault())
        {
          if (arrayOfObject == null)
            break label486;
          int i1 = 0;
          int i2 = i;
          while (i1 < i2)
          {
            ((SettableBeanProperty)arrayOfObject[i1]).set(localObject, arrayOfObject[(i1 + 1)]);
            i1 += 2;
          }
          break;
          String str = paramJsonParser.getCurrentName();
          SettableBeanProperty localSettableBeanProperty = this._beanProperties.find(str);
          paramJsonParser.nextToken();
          if (localSettableBeanProperty != null)
            if (localObject != null)
              localSettableBeanProperty.deserializeAndSet(paramJsonParser, paramDeserializationContext, localObject);
          while (true)
          {
            paramJsonParser.nextToken();
            break;
            if (arrayOfObject == null)
            {
              int n = this._beanProperties.size();
              arrayOfObject = new Object[n + n];
            }
            int m = i + 1;
            arrayOfObject[i] = localSettableBeanProperty;
            i = m + 1;
            arrayOfObject[m] = localSettableBeanProperty.deserialize(paramJsonParser, paramDeserializationContext);
            continue;
            if (("message".equals(str)) && (bool1))
            {
              localObject = this._valueInstantiator.createFromString(paramJsonParser.getText());
              if (arrayOfObject != null)
              {
                int j = 0;
                int k = i;
                while (true)
                {
                  if (j >= k)
                  {
                    arrayOfObject = (Object[])null;
                    break;
                  }
                  ((SettableBeanProperty)arrayOfObject[j]).set(localObject, arrayOfObject[(j + 1)]);
                  j += 2;
                }
              }
            }
            else if ((this._ignorableProps != null) && (this._ignorableProps.contains(str)))
            {
              paramJsonParser.skipChildren();
            }
            else if (this._anySetter != null)
            {
              this._anySetter.deserializeAndSet(paramJsonParser, paramDeserializationContext, localObject, str);
            }
            else
            {
              handleUnknownProperty(paramJsonParser, paramDeserializationContext, localObject, str);
            }
          }
        }
    }
  }

  public JsonDeserializer<Object> unwrappingDeserializer()
  {
    if (getClass() != ThrowableDeserializer.class)
      return this;
    return new ThrowableDeserializer(this, true);
  }
}

/* Location:           E:\android\Toy Defense 2_dex2jar.jar
 * Qualified Name:     com.burstly.jackson.map.deser.std.ThrowableDeserializer
 * JD-Core Version:    0.6.2
 */